📸 HAL 调试秘籍
30章 · 日志分析
🎯 风格 · 专业硬核
01
Camera HAL 概述
什么是 Camera HAL?它在 Android 相机架构中的位置与作用。
02
HAL 接口详解
ICameraDevice、ICameraDeviceSession 等核心接口解析。
03
日志系统入门
Android logcat 基础,如何过滤 Camera 相关日志。
04
关键日志标签
CamX、CHI、CamHAL 等标签的含义与使用场景。
05
调试工具链
adb、dumpsys、bugreport 在 Camera 调试中的基础用法。
06
HAL 启动流程
从 Framework 到 HAL 的初始化链路日志分析。
07
Open Camera 流程
open() 调用链日志,常见失败原因排查。
08
Configure Streams 调试
Stream 配置参数解析,日志中如何看配置是否正确。
09
Request 与 Result 流程
Capture Request 下发与 Result 返回的日志追踪。
10
Buffer 管理
GraphicBuffer、Metadata Buffer 的分配与流转日志。
11
3A 算法日志
AE、AF、AWB 的日志输出与调试技巧。
12
ISP Pipeline 日志
ISP 各模块处理阶段的日志解读。
13
性能问题定位
如何从日志中找出帧率下降、延迟增大的根因。
14
内存问题分析
Native 内存泄漏、Buffer 泄漏的日志特征。
15
Crash 与 Tombstone
HAL 进程 crash 时如何从 tombstone 定位问题。
16
Vendor Tag 调试
自定义 Vendor Tag 的注册与日志输出。
17
多 Camera 协同
双摄、三摄场景下的日志同步分析。
18
HAL 与 Framework 交互
Binder 调用日志,HIDL/AIDL 接口调用追踪。
19
Power 与 Thermal
相机功耗、温控相关的日志解读。
20
CTS/VTS 测试日志
Camera CTS 失败时的日志分析方法。
21
日志级别控制
如何动态调整 HAL 日志级别(prop、setprop)。
22
常用调试命令
getprop、setprop、dumpsys media.camera 等命令详解。
23
日志分析脚本
用 Python/Shell 写日志分析工具,提取关键信息。
24
实战案例 1
预览黑屏问题,从日志到根因的完整排查过程。
25
实战案例 2
拍照卡顿问题,日志分析 + 性能工具联合定位。
26
实战案例 3
录像音画不同步,日志中时间戳的比对方法。
27
实战案例 4
HAL 进程反复重启,从日志看 watchdog 触发原因。
28
实战案例 5
第三方 App 兼容性问题,日志中如何识别 App 的异常调用。
29
高级技巧
使用 Perfetto 与 Systrace 结合 HAL 日志进行深度分析。
30
总结与展望
Camera HAL 调试的未来趋势,QTI/MTK 平台差异总结。